import { cityApi } from "@/api/city";
// 城市模块
const cityModule = {
  // 添加命名空间
  namespaced: true,
  state: {
    cityName: localStorage.getItem("name") || "北京",
    // 城市列表数据
    cityList: [],
  },
  getters: {
    hotCity(state) {
      return state.cityList[0];
    },
    otherCity(state) {
      return state.cityList.slice(1);
    },
  },
  mutations: {
    changeName(state, payload) {
      state.cityName = payload.name;
      localStorage.setItem("name", payload.name);

      /*
        本地存储
          localStorage
            localStorage存的东西是永久存在的,除非手动删除
            不能跨浏览器的
            相同域名才能相互访问
            setItem用于存储 getItem用于获取 clear清除所有 removeItem清除指定的那个

          sessionStorage
            sessionStorage关闭窗口就会没有的
            存在窗口里,临时会话存储
            setItem用于存储 getItem用于获取
      */
    },
    getCityData(state, payload) {
      state.cityList = payload.result;
    },
  },
  actions: {
    // 请求城市列表
    async asyncGetCityData({ commit }) {
      const res = await cityApi();
      commit("getCityData", res);
    },
  },
};

export default cityModule;
